//
//  TooleClass.h
//  InsuranceMarketing
//
//  Created by initial on 2018/1/25.
//  Copyright © 2018年 initial. All rights reserved.
//



#import <Foundation/Foundation.h>
#import <CommonCrypto/CommonCrypto.h>

typedef enum : NSUInteger {
    OrganizationTypeIDCard = 1,
    OrganizationTypeOGCode = 31,
    OrganizationTypeBusinessLicense = 34,
    OrganizationTypeUnifiedCode = 37,
    OrganizationTypePassLicense = 25,
    OrganizationTypeHKMacIDCard = 7,
} OrganizationTypes;

@interface TooleClass : NSObject

+(NSString *)dictionaryToMD5:(NSDictionary *)dict;
+(NSString *) md5:(NSString *)str;
+ (BOOL)isMobileNumber:(NSString *)mobileNum;


+ (BOOL)validateOrganizations:(OrganizationTypes)type numbers:(NSString*)number;

//精确身份证号验证
+ (BOOL)accurateVerifyIDCardNumber:(NSString *)value;

//验证邮箱是否合法

+ (BOOL)validateEmail:(NSString *)emailString;

/**
 *  验证身份证号码是否正确的方法
 *
 *  @param IDNumber 传进身份证号码字符串
 *
 *  @return 返回YES或NO表示该身份证号码是否符合国家标准
 */
+ (BOOL)isCorrect:(NSString *)IDNumber;

//是不是正确的组织机构代码证号
+ (BOOL)validateOrganization:(NSString *)String;

//三证合一验证
+ (BOOL)isUnifiedSCCodeFifteen:(NSString *)string;
//三证合一验证
+ (BOOL)isUnifiedSCCodeEighteen:(NSString *)string;

//是否是正确的用户名（字母加数字）
+(BOOL)isUnCorrectUserName:(NSString *)string;

+ (NSString *)arrayToJSONString:(NSMutableArray *)array;

+ (NSString *)jsonFromArray:(id)aArray;

//是否是正确的用户名（字母加数字加汉字）
//+ (BOOL) validateUserName:(NSString *)name;


// 是不是正确的车辆识别代号
+ (BOOL)isCarVin:(NSString *)string;

//是不是正确的发动机号
+ (BOOL)isEngineNo:(NSString *)string;


//是不是汉字
+ (BOOL)isHanzi:(NSString *)string;

//获取当前时间的时间戳
+(NSString *)getTime;
//获取当前时间的时间戳精确到毫秒（保留两位小数）
+(NSString *)getSSSTime;
//将某个时间戳转化成 时间
+(NSString *)timestampSwitchTime:(NSInteger)timestamp andFormatter:(NSString *)format;

//将某个时间转化成 时间戳
+(NSInteger)timeSwitchTimestamp:(NSString *)formatTime andFormatter:(NSString *)format;

//将date 按照时间格式YYYY-MM-dd 等 转成字符串
+ (NSString *)dateStringWithDate:(NSDate *)date DateFormat:(NSString *)dateFormat;

//获取当前时间年月拼接 eg：2018-01
+ (NSString *)getNewTime;



//是否含有表情
+ (BOOL)stringContainsEmoji:(NSString *)string;

//传身份证返回生日字符串
+ (NSString *)birthdayStrFromIdentityCard:(NSString *)numberStr;

/**
 *  从身份证上获取性别
 */
+(NSInteger)getIdentityCardSex:(NSString *)numberStr;


/**
 
 从身份证上获取年龄 18位身份证
 
 */

+(NSString *)getIdentityCardAge:(NSString *)numberStr;


/**
 *  ** 在当前日期时间加上 某个时间段(传负数即返回当前时间之前x月x日的时间)
 *
 *  @param year   当前时间若干年后 （传负数为当前时间若干年前）
 *  @param month  当前时间若干月后  （传0即与当前时间一样）
 *  @param day    当前时间若干天后
 *  @param hour   当前时间若干小时后
 *  @param minute 当前时间若干分钟后
 *  @param second 当前时间若干秒后
 *  @param date 传入选择的一个date
 *  @return 处理后的时间字符串
 */
+ (NSString *)dateStringAfterlocalDateForYear:(NSInteger)year Month:(NSInteger)month Day:(NSInteger)day Hour:(NSInteger)hour Minute:(NSInteger)minute Second:(NSInteger)second addSelectDate:(NSDate *)date;

//根据source 返回对应的组合数组
+ (NSMutableArray *)numberByArr:(NSInteger)source;

//十进制转二进制
+ (NSString *)getBinaryByDecimal:(NSInteger)decimal;


+ (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString;

/** 获取uuid*/
+(NSString*) getDeviceID;

@end
